package collectionday02;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**集合的排序---String*/
public class SoreString {
    public static void main(String[] args) {

        List<String> list = new ArrayList<>();
        list.add("王克晶");
        list.add("传奇sfjifdeoh ");
        list.add("国斌老师");
        list.add("刘苍松");
        System.out.println("原始数据:"+list);//原始数据:[王克晶, 传奇sfjifdeoh , 国斌老师, 刘苍松]
/*

        Collections.sort(list, new Comparator<String>() {

            */
/*
            compare()方法用于定义o1和o2比较大小的规则，并且返回值表示大小关系
              返回值实现的要求：------------不用纠结，记住下面的结论即可

              结论：
              1.前面的-后面的----------升序
              2.后面的-前面的----------降序
            *//*


            public int compare(String o1, String o2) {
               // return o1.length()-o2.length();//升序
                return o2.length()-o1.length();//降序
            }
        });
*/

        //Lambda表达式写法
        Collections.sort(list,(o1,o2)->o1.length()-o2.length());
        System.out.println("排序后的数据："+list);//排序后的数据：[传奇sfjifdeoh , 国斌老师, 王克晶, 刘苍松]


    /*
        List<String> list = new ArrayList<>();
        list.add("jack");
        list.add("rose");
        list.add("tom");
        list.add("jerry");
        list.add("black");
        list.add("Kobe");
        System.out.println("原始数据"+list);//原始数据[jack, rose, tom, jerry, black, kobe]

        //对英文字符串排序是，会按首字母的ASCII码来排
        //若首字母相同，则比较第2个字母的ASCII码，以此类推
        Collections.sort(list);
        System.out.println("排序后的数据："+list);//排序后的数据：[Kobe, black, jack, jerry, rose, tom]
        */

    }
}
